package com.ruoyi.manager.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.manager.domain.SoldierBaseInfo;
import com.ruoyi.manager.to.SoldierBaseInfoTo;
import com.ruoyi.manager.to.SoldierFullMessageDto;
import com.ruoyi.manager.vo.SoldierFullMessageVo;

/**
 * 退役军人Service接口
 *
 * @author Allen
 * @date 2021-08-30
 */
public interface ISoldierBaseInfoService extends IService<SoldierBaseInfo> {
    /**
     * 查询退役军人
     *
     * @param id
     *         退役军人主键
     *
     * @return 退役军人
     */
    public SoldierBaseInfo selectSoldierBaseInfoById(Long id);

    /**
     * 查询退役军人列表
     *
     * @param soldierBaseInfo
     *         退役军人
     *
     * @return 退役军人集合
     */
    public List<SoldierBaseInfo> selectSoldierBaseInfoList(SoldierBaseInfo soldierBaseInfo);

    /**
     * 基本信息的枚举转换
     * @param soldierBaseInfo
     */
    void changeBaseNumToStr(SoldierBaseInfo soldierBaseInfo);
    /**
     * 新增退役军人
     *
     * @param soldierBaseInfo
     *         退役军人
     *
     * @return 结果
     */
    public int insertSoldierBaseInfo(SoldierBaseInfo soldierBaseInfo);

    /**
     * 修改退役军人
     *
     * @param soldierBaseInfo
     *         退役军人
     *
     * @return 结果
     */
    public int updateSoldierBaseInfo(SoldierBaseInfo soldierBaseInfo);

    /**
     * 批量删除退役军人
     *
     * @param ids
     *         需要删除的退役军人主键集合
     *
     * @return 结果
     */
    public int deleteSoldierBaseInfoByIds(Long[] ids);

    /**
     * 删除退役军人信息
     *
     * @param id
     *         退役军人主键
     *
     * @return 结果
     */
    public int deleteSoldierBaseInfoById(Long id);

    /**
     * 获取军人所有信息 by idNumber
     *
     * @param idNumber
     *
     * @return
     */
    SoldierFullMessageVo getSoldierFullMessage(String idNumber);

    /**
     * 军转干中添加或修改军人优抚和安置信息
     *
     * @param soldierFullMessageDto
     *
     * @return
     */
    int addSoldierFullMessage(SoldierFullMessageDto soldierFullMessageDto);

    /**
     * 导入
     * @param userList
     */
    void importBaseInfo(List<SoldierBaseInfoTo> userList);
}
